package vip.liux.backend.application.service.pay;

import vip.liux.application.dots.PagedResultDto;
import vip.liux.application.dots.PagedResultRequestDto;
import vip.liux.backend.application.service.pay.dto.demo.PayDemoWithdrawCreateDto;
import vip.liux.contracts.models.pay.PayDemoWithdraw;

import javax.validation.Valid;

/**
 * 示例提现单 Service 接口
 *
 * @author jason
 */
public interface PayDemoWithdrawService {

    /**
     * 创建示例提现单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    PayDemoWithdraw createDemoWithdraw(@Valid PayDemoWithdrawCreateDto createReqVO);

    /**
     * 提现单转账
     *
     * @param id 提现单编号
     * @return 转账编号
     */
    String transferDemoWithdraw(Long id);

    /**
     * 获得示例提现单分页
     *
     * @param input 分页查询参数
     */
    PagedResultDto<PayDemoWithdraw> getDemoWithdrawPage(PagedResultRequestDto input);

    /**
     * 更新示例提现单的状态
     *
     * @param id            编号
     * @param payTransferNo 转账单编号
     */
    void updateDemoWithdrawTransferred(Long id, String payTransferNo);

}
